
#pragma once
// contains float3 definition
#include "./Utils/mathlib.h"
#include "RenderComponent.h"
/**
* This class draws a 3D cube with vertex coloring. The color
* of every face can be set but will default to red for the faces
* that are perpendicular to the X axis , green for the faces that
* are perpendicular to the Y axis and blue for the faces that
* are perpendicular to the Z axis.
*/
class VertexColorCube: public RenderComponent
{
public:
 /**
 * @param width the size along the X axis
 * @param length the size along the Y axis.
 * @param height the size along the Z axis.
 */
 VertexColorCube(float width, float length, float height);
 /**
 * Destroys the VertexColorCube object.
 */
 virtual ~VertexColorCube(void);
 /**
 * Draws the cube onto the current render context.
 */
 virtual void Draw();
 /**
 * Sends one vertex to the opengl context
 */
 void Vertex(float3& v);

private:
 float m_Width;
 float m_Length;
 float m_Height;

 float3 m_ps[8];
};
